package com.shanzhu.parking.entity;

import java.math.BigDecimal;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import java.time.LocalDateTime;
import java.io.Serializable;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import com.baomidou.mybatisplus.annotation.TableField;

/**
 * <p>
 * 
 * </p>
 *
 * @author 只茂瑞
 * @since 2025-04-13
 */
@Data
@TableName("card")
@ApiModel(value="Card对象", description="IC卡信息")
public class Card implements Serializable {

    private static final long serialVersionUID = 1L;

    /**
     * IC卡ID
     */
    @TableId(value = "id", type = IdType.AUTO)
    @ApiModelProperty(value = "IC卡ID")
    private Long id;

    /**
     * IC卡号
     */
    @TableField("card_no")
    @ApiModelProperty(value = "IC卡号")
    private String cardNo;

    /**
     * 用户ID
     */
    @TableField("user_id")
    @ApiModelProperty(value = "用户ID")
    private Long userId;

    /**
     * IC卡类型
     */
    @TableField("ic_type")
    @ApiModelProperty(value = "IC卡类型（普通卡/月卡/年卡/VIP卡）")
    private String icType;

    /**
     * 卡片状态
     */
    @TableField("card_status")
    @ApiModelProperty(value = "卡片状态（正常/挂失/注销）")
    private String cardStatus;

    /**
     * 卡内余额
     */
    @TableField("balance")
    @ApiModelProperty(value = "卡内余额")
    private BigDecimal balance;

    /**
     * 办理日期
     */
    @TableField("create_time")
    @ApiModelProperty(value = "办理日期")
    private LocalDateTime createTime;

    /**
     * 更新时间
     */
    @TableField("update_time")
    @ApiModelProperty(value = "更新时间")
    private LocalDateTime updateTime;

    /**
     * 用户信息（非数据库字段）
     */
    @TableField(exist = false)
    @ApiModelProperty(value = "用户信息")
    private Object user;
}
